﻿using System;
using System.Collections.Generic;

namespace SlamCms.Data
{
	[Serializable]
	public class ContentItem : ICloneable
	{
		public string ContentItemId { get; set; }
		public string PrimaryContentItemId { get; set; }
		
		public int StatusID { get; set; }
		public virtual ContentItemStatus Status { get; set; }

		public int FeatureLevel { get; set; }
		public int FeatureScore { get; set; }
		public int Rating { get; set; }

		public DateTime CreatedDate { get; set; }
		public int CreatedByUserId { get; set; }
		public virtual User CreatedByUser { get; set; }
		
		public DateTime ModifiedDate { get; set; }
		public int ModifiedByUserId { get; set; }
		public virtual User ModifiedByUser { get; set; }

		public DateTime? VerifiedDate { get; set; }
		public int? VerifiedByUserId { get; set; }
		public virtual User VerifiedByUser { get; set; }

		public DateTime? ExpirationDate { get; set; }

		public ICollection<Tag> Tags { get; set; }

		public Guid ListItemId { get; set; }
		public Guid ListId { get; set; }
		public virtual List List { get; set; }
		public int ListRelativeId { get; set; }
		public string ContentTypeId { get; set; }
		public virtual ContentType ContentType { get; set; }
		
		public string FrontEndUrl { get; set; }
		public string ReferenceTitle { get; set; }
		public string Slug { get; set; }

		public object Clone()
		{
			return MemberwiseClone();
		}
	}
}
